package com.xbongbong.sso.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 授权自定义字段编辑
 */
@Getter
@Setter
@ToString
public class OauthParamUpdateDTO extends BaseDTO {
    /**
     * 授权步骤id
     */
    @NotNull(message = "授权步骤id不能为空")
    Long id;

    /**
     * 请求阶段，1：request、2：response（暂时不让编辑）
     */
    @Range(min = 1, max = 2, message = "请求阶段只能是1～2的值")
    private Integer stageType;

    /**
     * 参数位置，1：body、2：header
     */
    @Range(min = 1, max = 2, message = "参数位置只能是1～2的值")
    private Integer position;

    /**
     * body传参类型，position=1时此参数有效，  1：application/x-www-form-urlencoded、2：application/json
     */
    @Range(min = 1, max = 2, message = "参数位置只能是1～2的值")
    private Integer contentType;

    /**
     * stageType:1时，第三方规范的参数名，用户自己填写
     * stageType:2时，销帮帮中的参数名
     */
    @Size(max = 30, message = "attr长度不可超过30")
    private String attr;

    /**
     * stageType:1时，销帮帮规范的参数名，选择填充，防止填错（从销帮帮系统中根据参数名取值）
     * stageType:2时，第三方规范的参数名（从IDP返回数据中根据这个字段取值）
     */
    @Size(max = 30, message = "standardAttr长度不可超过30")
    private String standardAttr;

    /**
     * 启用状态, 1:启用、0:关闭
     */
    @Range(min = 0, max = 1, message = "启用状态只能是0或1")
    private Integer enable;

    /**
     * 描述
     */
    @Size(max = 100, message = "描述长度不可超过100")
    private String description;
}
